package com.kazusa.myservlet;

import jakarta.servlet.ServletException;
import jakarta.servlet.ServletOutputStream;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;

import java.io.IOException;
import java.io.PrintWriter;

/*
*       服务器端默认编码格式为ISO-8859-1，当响应内容包含中文字符时，会出现乱码。
*       解决方法：
*       1.设置服务端的编码格式
*       respond.setCharacterEncoding=UTF-8
*       2.设置客户端的编码格式
*       response.setHeader("Content-Type", "text/html,charset=UTF-8");
*       总结：设置客户端和服务端的编码都支持中文且保持一致
*       同时设置客户端和服务端的编码
*
*       字节流响应数据
*       同时设置客户端和服务端的编码格式
        response.setContentType("text/html;charset=UTF-8");
* */
@WebServlet("/responseGarbled")
public class ResponseGarbled extends HttpServlet {
    @Override
    protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //分别设置客户端和服务端的编码格式

        /*response.setCharacterEncoding("UTF-8");
        response.setHeader("Content-Type", "text/html;charset=UTF-8");*/

        //同时设置客户端和服务端的编码格式
        response.setContentType("text/html;charset=UTF-8");
        //输出流
        PrintWriter writer=response.getWriter();
        writer.println("<h2>你好，世界！</h2>");

      /*  //字节流
        ServletOutputStream out= response.getOutputStream();
        out.write("<h2>你好，世界！</h2>".getBytes());*/
    }
}
